package com.tucy.logistics.common.entity.fastMail;

import javax.validation.constraints.Size;
import javax.validation.constraints.NotNull;

import java.io.Serializable;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.tucy.logistics.common.base.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import org.hibernate.validator.constraints.Length;

/**
* 快递信息表
* @TableName fast_mail
*/
@Setter
@Getter
@TableName("fast_mail")
public class FastMail extends BaseEntity implements Serializable {

    /**
    * 快递系统编号
    */
    @NotNull(message="[快递系统编号]不能为空")
    @ApiModelProperty("快递系统编号")
    private Long id;
    /**
    * 机构系统编号
    */
    @ApiModelProperty("机构系统编号")
    private Long departmentId;
    /**
    * 机构名称
    */
    @Size(max= 40,message="编码长度不能超过40")
    @ApiModelProperty("机构名称")
    @Length(max= 40,message="编码长度不能超过40")
    private String departmentName;
    /**
    * 快递员系统编号
    */
    @ApiModelProperty("快递员系统编号")
    private Long courierId;
    /**
    * 快递员姓名
    */
    @Size(max= 40,message="编码长度不能超过40")
    @ApiModelProperty("快递员姓名")
    @Length(max= 40,message="编码长度不能超过40")
    private String courierName;
    /**
    * 订单编号
    */
    @Size(max= 40,message="编码长度不能超过40")
    @ApiModelProperty("订单编号")
    @Length(max= 40,message="编码长度不能超过40")
    private String orderNumber;
    /**
     * 车牌号
     */
    @Size(max= 40,message="编码长度不能超过40")
    @ApiModelProperty("车牌号")
    @Length(max= 40,message="编码长度不能超过40")
    private String vehicleNumber;
    /**
    * 预计开始时间
    */
    @ApiModelProperty("预计开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date estimatedStartTime;
    /**
    * 实际开始时间
    */
    @ApiModelProperty("实际开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date actualStartTime;
    /**
    * 预计结束时间
    */
    @ApiModelProperty("预计结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date estimatedEndTime;
    /**
    * 实际结束时间
    */
    @ApiModelProperty("实际结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date actualEndTime;
    /**
    * 取消原因
    */
    @Size(max= -1,message="编码长度不能超过-1")
    @ApiModelProperty("取消原因")
    @Length(max= -1,message="编码长度不能超过-1")
    private String cancelReason;
    /**
    * 取消时间
    */
    @ApiModelProperty("取消时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date cancelTime;
    /**
    * 业务类型：1-取件，2-派件
    */
    @ApiModelProperty("业务类型：1-取件，2-派件")
    private Integer taskType;
    /**
    * 作业分配：1-未分配，2-已分配
    */
    @ApiModelProperty("作业分配：1-未分配，2-已分配")
    private Integer assignStatus;
    /**
    * 签收状态：1-未签收，2-已签收
    */
    @ApiModelProperty("签收状态：1-未签收，2-已签收")
    private Integer signStatus;
    /**
    * 签收类型：1-本人，2-代收
    */
    @ApiModelProperty("签收类型：1-本人，2-代收")
    private Integer signRecipient;
    /**
    * 业务状态：1-新任务，2-已完成，3-已取消
    */
    @ApiModelProperty("业务状态：1-新任务，2-已完成，3-已取消")
    private Integer mailStatus;
}
